package cn.com.headfree.workflow.dao;

import java.util.List;
import cn.com.headfree.entity.TWorkFlow;
import cn.com.headfree.entity.TYearEffectInfo;
import cn.com.headfree.entity.isc.User;

import com.gta.edu.sdk.common.dto.Page;

import cn.com.headfree.entity.TEducateInfo;
import cn.com.headfree.entity.TEmpBaseInfo;
import cn.com.headfree.entity.TEmployeeMobility;
import cn.com.headfree.entity.TMouldInfo;
import cn.com.headfree.entity.TOrgDept;
import cn.com.headfree.vo.workflow.DbCount;
import cn.com.headfree.vo.workflow.HadDoListVo;
import cn.com.headfree.vo.workflow.WaitDoListVo;

public interface IWorkFlowDao {

	List<TOrgDept> getDeptsByOrgId(User user);

	void saveWorkFlowInfo(TWorkFlow tWorkFlow);

	void findWaitDoBaseInfoPageByCondition(Page<WaitDoListVo> page, WaitDoListVo waitDo);

	void findWaitDoYearEffectInfoPageByCondition(Page<WaitDoListVo> page, WaitDoListVo waitDo);

	void findWaitDoEducationInfoPageByCondition(Page<WaitDoListVo> page, WaitDoListVo waitDo);

	void findWaitDoContiStudyInfoPageByCondition(Page<WaitDoListVo> page, WaitDoListVo waitDo);

	void findWaitDoProTecInfoPageByCondition(Page<WaitDoListVo> page, WaitDoListVo waitDo);

	void findWaitDoSkillLevelInfoPageByCondition(Page<WaitDoListVo> page, WaitDoListVo waitDo);

	void findWaitDoExpertTitleInfoPageByCondition(Page<WaitDoListVo> page, WaitDoListVo waitDo);

	void findWaitDoAcadeAchiveInfoPageByCondition(Page<WaitDoListVo> page, WaitDoListVo waitDo);

	void findWaitDoStandInfoPageByCondition(Page<WaitDoListVo> page, WaitDoListVo waitDo);

	void findWaitDoPatentInfoPageByCondition(Page<WaitDoListVo> page, WaitDoListVo waitDo);

	void findWaitDoTecInnovInfoPageByCondition(Page<WaitDoListVo> page, WaitDoListVo waitDo);

	void findWaitDoTecManInnovPageByCondition(Page<WaitDoListVo> page, WaitDoListVo waitDo);

	void findWaitDoHonorInfoPageByCondition(Page<WaitDoListVo> page, WaitDoListVo waitDo);

	void findWaitDoProjAchieveInfoPageByCondition(Page<WaitDoListVo> page, WaitDoListVo waitDo);

	void findWaitDoSdtTutorPrentInfoPageByCondition(Page<WaitDoListVo> page, WaitDoListVo waitDo);

	void findWaitDoWorkExpInfoPageByCondition(Page<WaitDoListVo> page, WaitDoListVo waitDo);

	void getHadDoListByCondition(Page<HadDoListVo> page, HadDoListVo hadDo);

	void updateBaseInfoYes(TEmpBaseInfo baseInfo);

	void examineBaseInfoYes(String businessId);

	void updateTableValidByBusinessId(String businessId,String erpNo,String userName,int isValid,String orignalId,Integer flowStatus,String tabName);

	void updateWorkFlow(String businessId,String dealOpinion);

	void updateYearEffect(TYearEffectInfo yearEffectInfo,User user);

	void updateEducateInfoYes(TEducateInfo educateInfo, User user);

	TMouldInfo getMouldNameById(String id);

	void updateTableFlowStatusByBusinessId(String businessId, int flowStatus, String tabName);

	void findWaitDoContestInfoPageByCondition(Page<WaitDoListVo> page, WaitDoListVo waitDo);

	List<DbCount> getDbOrYbCountByBusinessType(String fax, String status);


	/**
	 * 公共方法--根据原始数据ID删除审批流程表work_flow中之前的审批记录，以防止一条数据在进度查看中展示多次审批记录
	 */
	void updateWorkFlowDataByPrimitiveId(String primitiveId);

	void updateWorkFlow(String businessId, String dealOpinion, String erpNo, String userName);

	void findWaitDoRotationInfoPageByCondition(Page<WaitDoListVo> page, WaitDoListVo waitDo);

	void updateTEmployeeMobility(TEmployeeMobility tEmployeeMobility, User user);

}
